﻿using CasignDesignGA.Casing;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CasignDesignGA.Casign
{
    class CasingUnit
    {
        private double burst;

        public double Burst
        {
            get { return burst; }
            set { burst = value; }
        }
        private double collapse;

        public double Collapse
        {
            get { return collapse; }
            set { collapse = value; }
        }
        private double axial;

        public double Axial
        {
            get { return axial; }
            set { axial = value; }
        }
        private double uts;

        public double Uts
        {
            get { return uts; }
            set { uts = value; }
        }
        private double wallThickness;

        public double WallThickness
        {
            get { return wallThickness; }
            set { wallThickness = value; }
        }
        private double ys;

        public double Ys
        {
            get { return ys; }
            set { ys = value; }
        }
        private double drift;

        public double Drift
        {
            get { return drift; }
            set { drift = value; }
        }
        private double id;

        public double Id
        {
            get { return id; }
            set { id = value; }
        }
        private long longitude;

        public long Longitude
        {
            get { return longitude; }
            set { longitude = value; }
        }

        private double od;

        public double Od
        {
            get { return od; }
            set { od = value; }
        }

        private double metricWeight;

        public double MetricWeight
        {
            get { return metricWeight; }
            set { metricWeight = value; }
        }

        private string steelGrade;

        public string SteelGrade
        {
            get { return steelGrade; }
            set { steelGrade = value; }
        }

        private ConnectionType connection;

        internal ConnectionType Connection
        {
            get { return connection; }
            set { connection = value; }
        }

        private double price;

        public double Price
        {
            get { return price; }
            set { price = value; }
        }

        public CasingUnit Clone()
        {
            CasingUnit newClone = new CasingUnit();
            newClone.axial = this.axial;
            newClone.burst = this.burst;
            newClone.collapse = this.collapse;
            newClone.drift = this.drift;
            newClone.id = this.id;
            newClone.longitude = this.longitude;
            newClone.metricWeight = this.metricWeight;
            newClone.od = this.od;
            newClone.price = this.price;
            newClone.steelGrade = this.steelGrade;
            newClone.uts = this.uts;
            newClone.wallThickness = this.wallThickness;
            newClone.ys = this.ys;
            return newClone;
        }
    }
}
